from utils.regular import clean_text
import requests


def chat(chat_info):
    send_chat_info = {
        "model": "ChatGLM3-6B-Chat",
        "messages": [
            {
                "role": "system",
                "content": "你的名字叫'盼盼'，是由全国大学生商务谈判大赛组委会创造的虚拟数字IP，是大赛的吉祥物。你的职责是向与你聊天的人提供与大赛相关的咨询服务，解答相关问题，帮助大赛组委会传播与推广这个比赛，让更多的人关注比赛。"
            },
            dict(chat_info)
        ],
        "tools": [],
        "do_sample": True,
        "temperature": 0.95,
        "top_p": 0.7,
        "n": 1,
        "max_tokens": 512,
        "stream": False
    }
    chat_url = 'http://127.0.0.1:8000/v1/chat/completions'

    try:
        response = requests.post(chat_url, json=send_chat_info)
        response.raise_for_status()
        chat_return_info = response.json()
    except:
        print("网络开了点小差，请稍后再试:")
        chat_return_info = {'choices': [{'index': 0, 'message': {'role': 'assistant',
                                                                 'content': '网络信号不好，请稍后再试',
                                                                 'tool_calls': None}}]}

    # 提取数据中的文本，并进行清洗
    chat_text = clean_text(chat_return_info.get("choices")[0].get("message").get("content"))
    return chat_text
